package com.manshutingyu.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.manshutingyu.common.core.dto.Option;
import com.manshutingyu.common.core.dto.RouterDTO;
import com.manshutingyu.system.domain.SysMenu;


import java.util.List;

/**
 * @Author：yinyuxia
 * @Date：2025/3/29 20:48
 */
public interface SysMenuService extends IService<SysMenu> {
    /**
     * 根据用户ID查询菜单树信息
     *
     * @param userId
     * @param isAdmin
     * @return
     */
    List<SysMenu> getRouters(Long userId, Boolean isAdmin);


    /**
     * 构建前端路由所需要的菜单
     *
     * @param menus 菜单列表
     * @return 路由列表
     */
    List<RouterDTO> buildMenus(List<SysMenu> menus);

    /**
     * 获取菜单下拉列表
     *
     * @param onlyParent 是否只查询父级菜单
     */
    List<Option> listMenuOptions(boolean onlyParent);
    /**
     * 根据用户ID查询菜单列表
     *
     * @param menu
     * @param userId
     * @return
     */
    List<SysMenu> selectMenuList(SysMenu menu, Long userId,Boolean isAdmin);



    /**
     * 更新或保存菜单
     * @param sysMenu
     * @return
     */
    Boolean saveMenu(SysMenu sysMenu);
}
